package com.restkeeper.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;
import java.io.Serializable;

/**
 * 设备表(Devices)实体类
 *
 * @author makejava
 * @since 2025-05-17 17:20:18
 */
@Data
public class Devices implements Serializable {
    private static final long serialVersionUID = 652756610476146120L;

    private Integer id;
    private String sn;
    private String imei;
    private Integer creatorid;
    private Integer resetflag;
    private Integer cutPower;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date validTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date expireTime;

    private Integer reportInterval;
    private Integer reportIntervalInitFlag;
    private Integer cutPowerInitFlag;
    private Integer functionList1;
    private Integer functionList2;
    private String phone;
    private Integer guarding;
    private String masternumber;
    private Integer deviceType;
    private String name;
    private String fence;
    private Integer gpsSwitch;
    private Integer online;
    private Integer alarmonshaking;
    private Integer alarmonlowbattery;
    private Integer alarmonlosingexternalpower;
    private Integer alarmonoverspeed;
    private Integer alarmoncrossingborder;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastshakingtime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastlowbatterytime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastlosingexternalpowertime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastcrossingbordertime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastoverspeedtime;

    private String guardingLng;
    private String guardingLat;
    private Integer guardingRadius;
    private Integer overspeed;
    private Integer alarmingMode;
    private Integer banHanlebar;
    private Integer lockMotor;
    private Integer controlPower;
    private Integer buzzerOn;
    private Integer alarmInterval;
    private Integer alarmonacc;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastacctime;

    private Integer steps;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date stepTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastlowbatterywarningtime;

    private Integer alarmonlowbatterywarning;
    private Integer heartbeatInterval;
    private Integer project;
    private String version;
    private Integer locatingMethod;
    private Integer displayMethod;
    private String iccid;
    private Integer alarmonmoving;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date lastmovingtime;

    private Integer alarmonstopping;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date laststoppingtime;

    private Integer movingStatus;
    private String imsi;
    private Integer wechatAlarming;
    /**
     * 商户id
     */
    private Long merchantId;
}

